home *** CD-ROM | disk | FTP | other *** search
/ Softdisk G-S 131 / SGDS 131.2mg / SDGS.131 / SDC131 / C / MD.2 (.txt) < prev    next >
Encoding:
Applesoft BASIC Source Code  |  1992-08-25  |  11.7 KB  |  354 lines  |  [FC] Applesoft BASIC Program (0x6001)

  1. 120  DIM Q%(16),R%(16),S%(16),T%(16),U%(16),V%(16)
  2. 130  DIM M$(12),Z$(11),C%(21),D(20)
  3. 180 HG = 49234: HCOLOR= 3
  4. 190 MP = 1:CH = 32:BS$ =  CHR$(8):FS$ =  CHR$(21):CR$ =  CHR$(13):UP$ =  CHR$(11):DN$ =  CHR$(10):ES$ =  CHR$(27):BL$ =  CHR$(7)
  5. 210  GOSUB 1820
  6. 220  VTAB 12: HTAB 1: PRINT "WORKING ..."
  7. 230  FOR X = 1 TO 16: READ R%(X),S%(X),T%(X),U%(X),V%(X): NEXT 
  8. 240  DATA    4,19,4,22,20,6,16,6,19,17,6,22,6,25,23,8,13,8,16,14
  9. 250  DATA   8,19,8,22,20,8,25,8,28,26,10,10,10,13,11,10,16,10,19,17
  10. 260  DATA   10,22,10,25,23,10,28,10,31,29,12,13,12,16,14,12,19,12,22,20
  11. 270  DATA   12,25,12,28,26,14,16,14,19,17,14,22,14,25,23,16,19,16,22,20
  12. 280  FOR X = 1 TO 6: READ W$(X): NEXT 
  13. 290  DATA "Can you fill a 9-cell diamond?","Can you fill a 16-cell diamond?" 
  14. 300  DATA "Tutorial on 16-cell diamonds.","Make your own magic diamonds!","Main menu",Quit
  15. 310  VTAB 12: HTAB 1: PRINT  SPC( 40): GOTO 1310
  16. 320  REM   ** FILL OUT 16-CELL DIAMOND **
  17. 330  GOSUB 780
  18. 340 I = 1:J = 1:J2 = 0
  19. 350  GOSUB 390
  20. 360  VTAB T%(I): ROT= U%(I): SCALE= V%(I):T1$ =  STR$(Q%(I)):IN$ = T1$: GOSUB 980:Q%(I) =  VAL(IN$)
  21. 361  IF AF = 11  THEN I = I -1: IF I = 0  THEN I = 16
  22. 362  IF AF = 11  THEN AF = 0: GOTO 350
  23. 370 AF = 0:I = I +1: IF I = 17  THEN I = 1
  24. 380  GOTO 350
  25. 390 D(1) = Q%(7) +Q%(8) +Q%(9) +Q%(10):D(2) = Q%(1) +Q%(2) +Q%(4) +Q%(7):D(3) = Q%(3) +Q%(5) +Q%(8) +Q%(11)
  26. 391 D(4) = Q%(6) +Q%(9) +Q%(12) +Q%(14):D(5) = Q%(10) +Q%(13) +Q%(15) +Q%(16):D(6) = Q%(1) +Q%(5) +Q%(12) +Q%(16)
  27. 392 D(7) = Q%(7) +Q%(11) +Q%(14) +Q%(16):D(8) = Q%(4) +Q%(8) +Q%(12) +Q%(15):D(9) = Q%(2) +Q%(5) +Q%(9) +Q%(13)
  28. 393 D(10) = Q%(1) +Q%(3) +Q%(6) +Q%(10):D(11) = Q%(1) +Q%(2) +Q%(3) +Q%(5):D(12) = Q%(4) +Q%(7) +Q%(8) +Q%(11)
  29. 394 D(13) = Q%(5) +Q%(8) +Q%(9) +Q%(12):D(14) = Q%(6) +Q%(9) +Q%(13) +Q%(10):D(15) = Q%(12) +Q%(14) +Q%(15) +Q%(16)
  30. 395 D(16) = Q%(1) +Q%(7) +Q%(10) +Q%(16):D(17) = Q%(3) +Q%(6) +Q%(11) +Q%(14):D(18) = Q%(2) +Q%(4) +Q%(13) +Q%(15)
  31. 396 D(19) = Q%(4) +Q%(6) +Q%(11) +Q%(13):D(20) = Q%(2) +Q%(3) +Q%(14) +Q%(15)
  32. 400  VTAB 10: HTAB 34: PRINT D(1) SPC( D(1) <10): PRINT : PRINT : HTAB 8: PRINT  SPC( D(2) <10)D(2): PRINT : HTAB 11: PRINT  SPC( D(3) <10)D(3): PRINT : HTAB 14: PRINT  SPC( D(4) <10)D(4)
  33. 401  PRINT : HTAB 17: PRINT  SPC( D(5) <10)D(5): VTAB 12: HTAB 31: PRINT D(10) SPC( D(10) <10): PRINT : PRINT : HTAB 28: PRINT D(9) SPC( D(9) <10): PRINT : PRINT : HTAB 25: PRINT D(8) SPC( D(8) <10)
  34. 402  PRINT : PRINT : HTAB 22: PRINT D(7) SPC( D(7) <10)
  35. 410  FOR QX = 1 TO 20: IF D(QX) = 34  THEN  NEXT :QX = 0: GOTO 412
  36. 411 QX = 100: NEXT : RETURN 
  37. 412  FOR QX = 1 TO 16:D(QX) = 0: NEXT : FOR QX = 1 TO 16:D(Q%(QX)) = D(Q%(QX)) +1: NEXT 
  38. 413  FOR QX = 1 TO 16: IF D(QX) < >1  THEN QX = 100: NEXT : RETURN 
  39. 414  GOTO 680
  40. 510  REM    ** FILL OUT 9-CELL DIAMOND **
  41. 520  GOSUB 620
  42. 530 I = 1:J = 1:J2 = 0
  43. 540  GOSUB 670
  44. 550  VTAB T%(I): ROT= U%(I): SCALE= V%(I) +1:T1$ =  STR$(Q%(I)):IN$ = T1$: GOSUB 980:Q%(I) =  VAL(IN$)
  45. 555  IF AF = 11  THEN I = I -1: IF I = 11  THEN I = 9
  46. 556  IF AF = 11  AND I = 7  THEN I = 6
  47. 557  IF AF = 11  AND I = 0  THEN I = 12
  48. 558  IF AF = 11  THEN 565
  49. 560 I = I +1:AF = 0
  50. 565  IF I = 7  THEN I = 8
  51. 570  IF I = 10  THEN I = 12
  52. 580  IF I = 13  THEN I = 1
  53. 590  GOTO 540
  54. 610  REM  ** DRAWS 9-CELL DIAMOND **
  55. 620  HPLOT 139,11 TO 202,59 TO 139,107 TO 76,59 TO 139,11
  56. 630  HPLOT 118,27 TO 181,75: HPLOT 160,27 TO 97,75
  57. 640  HPLOT 97,43 TO 160,91: HPLOT 181,43 TO 118,91
  58. 650 ZZ = 1
  59. 660  RETURN 
  60. 670 D(1) = Q%(4) +Q%(5) +Q%(6):D(2) = Q%(1) +Q%(2) +Q%(4):D(3) = Q%(3) +Q%(5) +Q%(8)
  61. 671 D(4) = Q%(6) +Q%(9) +Q%(12):D(5) = Q%(1) +Q%(5) +Q%(12):D(6) = Q%(4) +Q%(8) +Q%(12)
  62. 672 D(7) = Q%(2) +Q%(5) +Q%(9):D(8) = Q%(1) +Q%(3) +Q%(6)
  63. 673  VTAB 8: HTAB 32: PRINT D(1) SPC( D(1) <10): PRINT : PRINT : HTAB 11: PRINT  SPC( D(2) <10)D(2): PRINT : HTAB 14: PRINT  SPC( D(3) <10)D(3)
  64. 674  PRINT : HTAB 17: PRINT  SPC( D(4) <10)D(4): PRINT : HTAB 20: PRINT  SPC( D(5) <10)D(5)
  65. 675  VTAB 10: HTAB 29: PRINT D(8) SPC( D(8) <10): PRINT : PRINT : HTAB 26: PRINT D(7) SPC( D(7) <10): PRINT : PRINT : HTAB 23: PRINT D(6) SPC( D(6) <10)
  66. 676  FOR QX = 1 TO 8: IF D(QX) = 15  THEN  NEXT :QX = 0: GOTO 678
  67. 677 QX = 100: NEXT : RETURN 
  68. 678  FOR QX = 1 TO 9:D(QX) = 0: NEXT : FOR QX = 1 TO 6:D(Q%(QX)) = D(Q%(QX)) +1: NEXT :D(Q%(8)) = D(Q%(8)) +1:D(Q%(9)) = D(Q%(9)) +1:D(Q%(12)) = D(Q%(12)) +1
  69. 679  FOR QX = 1 TO 9: IF D(QX) < >1  THEN QX = 100: NEXT : RETURN 
  70. 680  NEXT :QX = 0: GOSUB 2090: VTAB 22: HTAB 7: PRINT "You have met the challenge!!"
  71. 681  VTAB 24: GOSUB 1840: GOSUB 1820: GOTO 1320
  72. 770  REM  **PRINT OUT DIAMOND**
  73. 780  HPLOT 55,75 TO 139,11 TO 223,75 TO 139,139 TO 55,75
  74. 790  HPLOT 76,59 TO 160,123
  75. 800  HPLOT 97,43 TO 181,107
  76. 810  HPLOT 118,27 TO 202,91
  77. 820  HPLOT 76,91 TO 160,27
  78. 830  HPLOT 97,107 TO 181,43
  79. 840  HPLOT 118,123 TO 202,59
  80. 850 ZZ = 0
  81. 860  RETURN 
  82. 870  REM  **FILL ROUTINE**
  83. 880  FOR X = 1 TO 5
  84. 890 X1 = X1 +D:Y1 = Y1 +E
  85. 900 X2 = X2 +D:Y2 = Y2 +E
  86. 910  HPLOT X1,Y1 TO X2,Y2
  87. 920  NEXT X
  88. 930  RETURN 
  89. 940  REM   **ERASE DIAMOND**
  90. 950  FOR R = 2 TO 17
  91. 960  VTAB R: HTAB 1: PRINT  SPC( 32)
  92. 970  NEXT R: VTAB 18: HTAB 20: PRINT  SPC( 2): RETURN 
  93. 980  REM   **INPUT ROUTINE**
  94. 990 CN = 1: FOR QX = 1 TO  LEN(T1$):IN$(QX) =  MID$ (T1$,QX,1): NEXT : FOR QX = QX TO 9:IN$(QX) = " ": NEXT 
  95. 995 L1 =  PEEK(249) - PEEK(231)
  96. 996 CN =  LEN(T1$)
  97. 1000  HTAB  PEEK(231): PRINT  LEFT$(T1$,L1);: HTAB  PEEK(231)
  98. 1010 AF = 0: FOR QX = 0 TO 128: POKE 50,255 -192 *( PEEK(50) = 255):QX =  PEEK(49152): HTAB  PEEK(231) +CN -1: PRINT IN$(CN) CHR$(8);: NEXT 
  99. 1011  POKE 49168,0:T$ =  CHR$(QX -129): NORMAL : PRINT IN$(CN) CHR$(8);
  100. 1015  IF T$ = ES$  THEN  POP : GOTO 1550
  101. 1019  IF T$ =  CHR$(10)  OR T$ =  CHR$(11)  THEN AF =  ASC(T$): GOTO 1210
  102. 1020  ON T$ =  CHR$(13) GOTO 1210: IF CN >L1  THEN  IF T$ < > CHR$(8)  THEN  IF T$ < > CHR$(127)  THEN  IF T$ < > CHR$(4)  THEN  PRINT  CHR$(7);: GOTO 1010
  103. 1030  IF T$ =  CHR$(24)  THEN 990
  104. 1040  IF T$ = "/"  OR T$ = "?"  THEN  POP : GOTO 1260
  105. 1070  IF (T$ =  CHR$(127)  OR T$ =  CHR$(4))  AND CN = 2  THEN IN$(1) = "0":CN = 1: GOTO 1000
  106. 1080  IF T$ =  CHR$(8)  OR T$ =  CHR$(127)  OR T$ =  CHR$(4)  THEN  IF CN = 1 GOTO 1010
  107. 1090  IF T$ =  CHR$(8)  AND CN >1  THEN T$ =  CHR$(127)
  108. 1100  IF T$ =  CHR$(127)  OR T$ =  CHR$(4)  THEN  IF CN >1  THEN  PRINT " " CHR$(8) CHR$(8);:IN$(CN -1) = " ":CN = CN -1: GOTO 1010
  109. 1110  IF T$ < CHR$(47)  OR T$ > CHR$(57)  THEN  PRINT  CHR$(7);: GOTO 1010
  110. 1131  IF T$ =  CHR$(127)  THEN 1010
  111. 1140  PRINT T$;:IN$(CN) = T$:CN = CN +1: GOTO 1010
  112. 1210 IN$ = "": FOR QX = 1 TO CN:IN$ = IN$ +IN$(QX): NEXT 
  113. 1250  RETURN 
  114. 1260  GOSUB 2090: GOSUB 2110: GOSUB 2130
  115. 1270  IF ZZ = 0  THEN 1500
  116. 1280  IF ZZ = 1  THEN 1485
  117. 1290  GOSUB 1820: GOTO 1320
  118. 1300  REM  ** MAIN MENU **
  119. 1310 M1 = 1
  120. 1320  VTAB 1: HTAB 13: PRINT "MAGIC DIAMONDS"
  121. 1330  VTAB 5: HTAB 15: INVERSE : PRINT "-- MENU --": NORMAL 
  122. 1340  FOR C1 = 1 TO 6: IF M1 = C1  THEN  INVERSE 
  123. 1350  HTAB 7: VTAB 2 *C1 +7: PRINT W$(C1): NORMAL 
  124. 1360  NEXT 
  125. 1370  VTAB 24: HTAB 1: PRINT "ARROWS MOVE HIGHLIGHT - RETURN SELECTS"
  126. 1380  GET K$
  127. 1390  NORMAL : HTAB 7: VTAB 2 *M1 +7: PRINT W$(M1)
  128. 1400  IF (K$ = BS$  OR K$ = UP$)  THEN M1 = M1 -1: IF M1 <1  THEN M1 = 6
  129. 1410  IF (K$ = FS$  OR K$ = DN$)  THEN M1 = M1 +1: IF M1 >6  THEN M1 = 1
  130. 1420  IF K$ = CR$  THEN  INVERSE : HTAB 7: VTAB 2 *M1 +7: PRINT W$(M1): NORMAL : GOTO 1460
  131. 1430  IF K$ = ES$  THEN M1 = 6: GOTO 1460
  132. 1440  INVERSE : HTAB 7: VTAB 2 *M1 +7: PRINT W$(M1): NORMAL 
  133. 1450  GOTO 1380
  134. 1460  ON M1 GOTO 1480,1500,1520,1530,1475,1540
  135. 1470  GOTO 1340
  136. 1475  PRINT  CHR$(4)"-MD.1"
  137. 1480  GOSUB 1830: GOSUB 1810
  138. 1485  CALL 54915
  139. 1490 ZZ = 1: GOSUB 1850: GOSUB 510
  140. 1500  GOSUB 1830: GOSUB 1810
  141. 1505  CALL 54915
  142. 1510 ZZ = 0: GOSUB 1950: GOSUB 320
  143. 1520  GOTO 2170
  144. 1530  PRINT  CHR$(4);"RUNMD.3"
  145. 1540  GOSUB 1820: GOTO 3750
  146. 1550  GOSUB 1820: GOTO 1320
  147. 1810  REM  ** CLEAR SCREEN **
  148. 1820  HCOLOR= 0: HPLOT 0,0: CALL  -3082: HCOLOR= 3: RETURN 
  149. 1830  FOR X = 1 TO 16:Q%(X) = 0: NEXT X: RETURN 
  150. 1840  HTAB 8: PRINT "Press any key to continue.";: GET P$: RETURN 
  151. 1850  REM  ** 9-CELL WORDS **
  152. 1860  VTAB 1: HTAB 9: PRINT "The 9-cell CHALLENGE!!"
  153. 1870  VTAB 19: HTAB 1
  154. 1880  PRINT "Hi There! Make this a MAGIC DIAMOND by"
  155. 1890  PRINT "placing the digits 1-9 (no duplicates)"
  156. 1900  PRINT "in the cells. The sums are displayed."
  157. 1910  PRINT "Up and down arrow (CTRL K,J) move from"
  158. 1920  PRINT "cell to cell. RET accepts. DEL erases."
  159. 1930  PRINT "Go Ahead! Good Luck!!           (?)HINT"
  160. 1940  RETURN 
  161. 1950  REM  ** 16-CELL WORDS **
  162. 1960  VTAB 1: HTAB 9: PRINT "The 16-cell CHALLENGE!"
  163. 1970  VTAB 20: HTAB 1
  164. 1980  PRINT "Hello Again! Make this a MAGIC DIAMOND"
  165. 1990  PRINT "by putting 1-16 in the cells (no dupli-"
  166. 2000  PRINT "cates.) Up and down arrows (CTRL K&J)  "
  167. 2010  PRINT "move, RET accepts and DELETE erases."
  168. 2020  PRINT "GOOD LUCK!!                     (?)HINT"
  169. 2040  RETURN 
  170. 2050  REM  ** HINT2 **
  171. 2060  VTAB 20: HTAB 1: PRINT "HINT...(1) The MAGIC SUM = 34."
  172. 2070  PRINT "       (2) Horiz. diag. is 4, 7, 10, 13": RETURN 
  173. 2080  REM  ** ERASE 6 LINES **
  174. 2090  FOR X = 19 TO 24: VTAB X: HTAB 1: PRINT  SPC( 40): NEXT X: RETURN 
  175. 2100  REM   ** HINT1 **
  176. 2110  IF ZZ < >1  THEN  GOSUB 2060: GOSUB 2130: GOSUB 2090: GOTO 1505
  177. 2120  VTAB 20: HTAB 1: PRINT "HINT...(1) The MAGIC SUM is 15.": PRINT "       (2) The top cell = 8": RETURN 
  178. 2130  VTAB 24: HTAB 12: PRINT "- Press a Key -": GET P$
  179. 2140  IF P$ = ES$  THEN  POP : GOTO 1550
  180. 2150  RETURN 
  181. 2160  REM  ** EXAMPLES **
  182. 2170 XX = 3: FOR I = 1 TO 16:D(I) = 0: NEXT 
  183. 2180  GOSUB 1820: GOSUB 780: GOSUB 2550: GOSUB 2590
  184. 2190  GOSUB 2450: GOSUB 2860
  185. 2200  GOSUB 2300: GOSUB 2130: GOSUB 2090: GOSUB 2370: GOSUB 2130
  186. 2210  GOSUB 2090: GOSUB 2650: GOSUB 2130: GOSUB 2090: GOSUB 2720: GOSUB 2130: GOSUB 2640
  187. 2220  GOSUB 2090: GOSUB 2630: GOSUB 2550: GOSUB 2590: GOSUB 2860
  188. 2230  GOSUB 2880: GOSUB 2130: GOSUB 2090: GOSUB 2950: GOSUB 2130: GOSUB 2090: GOSUB 3060: GOSUB 2130: GOSUB 2640
  189. 2240  GOSUB 2090: GOSUB 2630: GOSUB 2550: GOSUB 2590: GOSUB 2860
  190. 2250  GOSUB 3160: GOSUB 2130: GOSUB 2090: GOSUB 3230: GOSUB 2130: GOSUB 2090
  191. 2260  GOSUB 3510: GOSUB 2130: GOSUB 2090: GOSUB 3340: GOSUB 2130: GOSUB 2090
  192. 2270  GOSUB 3410: GOSUB 2130: GOSUB 2090: GOSUB 3880: GOSUB 2130: GOSUB 2640: GOSUB 2090: GOSUB 2630: GOSUB 2550: GOSUB 2590: GOSUB 2860
  193. 2280  GOSUB 3610: GOSUB 2130: GOSUB 2090: GOSUB 3680: GOSUB 2130: GOSUB 2090: GOTO 1550
  194. 2290  REM  ** MAKE DIAMOND WORDS **
  195. 2300  VTAB 19: HTAB 1
  196. 2310  PRINT "This is a BASIC 16-cell magic"
  197. 2320  PRINT "diamond. The numbers from 1 to 16"
  198. 2330  PRINT "are placed correctly to have a MAGIC"
  199. 2340  PRINT "SUM of 34 and all 20 4-cell sets"
  200. 2350  PRINT "also have this sum."
  201. 2360  RETURN 
  202. 2370  VTAB 19: HTAB 1
  203. 2380  PRINT "All construction of magic diamonds"
  204. 2390  PRINT "with numbers denoting dates, ages,"
  205. 2400  PRINT "years, or other special values, start"
  206. 2410  PRINT "from this magic diamond. Let's do a few"
  207. 2420  PRINT "examples so you can see how it's done."
  208. 2430  RETURN 
  209. 2440  REM  ** PRINT PATHS **
  210. 2450  VTAB 1: HTAB 23: PRINT "PATHS:    AB"
  211. 2460  VTAB 2: HTAB 31: PRINT "FH  DE"
  212. 2470  VTAB 3: HTAB 29: PRINT "EG  CG  CF"
  213. 2480  VTAB 4: HTAB 27: PRINT "CD  BF  AE  GH"
  214. 2490  VTAB 5: HTAB 29: PRINT "AH  DH  BD"
  215. 2500  VTAB 6: HTAB 31: PRINT "BG  AC"
  216. 2510  VTAB 7: HTAB 33: PRINT "EF"
  217. 2520  VTAB 1: HTAB 1: PRINT "PATH  ADD":XX = 3
  218. 2530  RETURN 
  219. 2540  REM  ** SET UP BASIC DIAMOND **
  220. 2550 Q%(1) = 16:Q%(2) = 5:Q%(3) = 2:Q%(4) = 9:Q%(5) = 11:Q%(6) = 3:Q%(7) = 4:Q%(8) = 7
  221. 2560 Q%(9) = 10:Q%(10) = 13:Q%(11) = 14:Q%(12) = 6:Q%(13) = 8:Q%(14) = 15:Q%(15) = 12:Q%(16) = 1
  222. 2570  RETURN 
  223. 2580  REM  ** FILL UP 16 CELLS **
  224. 2590  FOR X = 1 TO 16:AA = R%(X):BB = S%(X):LL =  LEN( STR$(Q%(X)))
  225. 2600  IF LL = 1  THEN BB = BB +2
  226. 2610  IF LL = 2  OR LL = 3  THEN BB = BB +1
  227. 2615  NORMAL : IF D(X)  THEN  INVERSE 
  228. 2620  VTAB AA: HTAB BB: PRINT Q%(X);: NEXT X: FOR X = 1 TO 16:D(X) = 0: NEXT : NORMAL : RETURN 
  229. 2630  FOR X = 1 TO 16: VTAB R%(X): HTAB S%(X): PRINT  SPC( 4): NEXT X: RETURN 
  230. 2640  FOR X = 3 TO 16: VTAB X: HTAB 1: PRINT  SPC( 7): NEXT X:XX = 3: RETURN 
  231. 2650 N1 = 1: GOSUB 2870: VTAB 19: HTAB 1
  232. 2660  PRINT "Let's say you are 18 years old and"
  233. 2670  PRINT "you would like the top cell to contain"
  234. 2680  PRINT "your age. A look at the PATHS diagram"
  235. 2690  PRINT "shows us that PATHS A and B fall in"
  236. 2700  PRINT "the top cell. Thus we can add a value"
  237. 2710  RETURN 
  238. 2720  VTAB 19: HTAB 1
  239. 2730  PRINT "to PATH A or to PATH B to make the top"
  240. 2740  PRINT "cell become 18. Let's choose PATH A."
  241. 2750  PRINT "A value of 2 must be added to PATH A"
  242. 2760  PRINT "to make the top cell hold 18 (16+2=18)."
  243. 2770  PRINT "The MAGIC SUM is now 36!    WATCH!!"
  244. 2780  GOSUB 2130
  245. 2790 F$ = "A":V = 2:Q%(1) = 18:Q%(9) = 12:Q%(11) = 16:Q%(15) = 14:D(1) = 1:D(9) = 1:D(11) = 1:D(15) = 1: GOSUB 2830: GOSUB 2590: GOSUB 2860
  246. 2800  PRINT BL$;
  247. 2810  RETURN 
  248. 2820  REM  ** PRINT PATH/VALUE **
  249. 2830  VTAB XX: HTAB 1: PRINT F$;"  ";V;:XX = XX +1
  250. 2840  IF XX = 17  THEN XX = 3
  251. 2850  RETURN 
  252. 2860  VTAB 17: HTAB 1: PRINT  SPC( 17): HTAB 1: PRINT "Magic Sum = ";Q%(1) +Q%(3) +Q%(6) +Q%(10);: RETURN 
  253. 2870  VTAB 17: HTAB 26: PRINT "Example: ";N1;: RETURN 
  254. 2880 N1 = 2: GOSUB 2870: VTAB 19: HTAB 1
  255. 2890  PRINT "Let's say you want the year 1992 to"
  256. 2900  PRINT "appear in the middle two cells of the"
  257. 2910  PRINT "BASIC diamond which contain 7 and 10."
  258. 2920  PRINT "First we want to add 12 (19-7=12) to"
  259. 2930  PRINT "either of the two PATHS in 7's cell."
  260. 2940  RETURN 
  261. 2950  VTAB 19: HTAB 1
  262. 2960  PRINT "We can use either PATH B or PATH F"
  263. 2970  PRINT "We'll choose PATH B and add 12 to it."
  264. 2980  PRINT "This puts 19 in the cell where 7 was."
  265. 2990  GOSUB 2130
  266. 3000 F$ = "B":V = 12:Q%(1) = 28:Q%(8) = 19:Q%(13) = 20:Q%(14) = 27:D(1) = 1:D(8) = 1:D(13) = 1:D(14) = 1: GOSUB 2830: GOSUB 2590: GOSUB 2860
  267. 3010  PRINT BL$;
  268. 3020  VTAB 22: HTAB 1
  269. 3030  PRINT "Now we want to change the 10 to a 92."
  270. 3040  PRINT "We can use either PATH A or PATH E."
  271. 3050  RETURN 
  272. 3060  VTAB 19: HTAB 1
  273. 3070  PRINT "Using PATH E, we add 82 (92-10=82)"
  274. 3080  PRINT "and obtain the desired 92 in 10's cell."
  275. 3090  PRINT "You see what it looks like now. (The"
  276. 3100  PRINT "computer sounds the note to let you"
  277. 3110  PRINT "know it's done!)"
  278. 3120  GOSUB 2130
  279. 3130 F$ = "E":V = 82:Q%(3) = 84:Q%(4) = 91:Q%(9) = 92:Q%(16) = 83:D(3) = 1:D(4) = 1:D(9) = 1:D(16) = 1: GOSUB 2830: GOSUB 2590: GOSUB 2860
  280. 3140  PRINT BL$;
  281. 3150  RETURN 
  282. 3160 N1 = 3: GOSUB 2870: VTAB 19: HTAB 1
  283. 3170  PRINT "Let's say a friend has a birthday on"
  284. 3180  PRINT "10/15/92 and you wish to have these"
  285. 3190  PRINT "values appear in the 3rd row. Do you"
  286. 3200  PRINT "see that we must add 1, 4, and 89 to"
  287. 3210  PRINT "the 3 cells in that order?"
  288. 3220  RETURN 
  289. 3230  VTAB 19: HTAB 1
  290. 3240  PRINT "We can add the 1 using PATHS E or G,"
  291. 3250  PRINT "the 4 using PATHS C or G, and the 89"
  292. 3260  PRINT "using PATHS C or F, BUT G & C overlap!!"
  293. 3270  PRINT "Let's add 1 to PATH E and 4 to PATH C."
  294. 3280  PRINT "This results in getting 10, 15 and 7."
  295. 3290  GOSUB 2130
  296. 3300 F$ = "E":V = 1:Q%(4) = 10:Q%(3) = 3:Q%(9) = 11:Q%(16) = 2:D(4) = 1:D(3) = 1:D(9) = 1:D(16) = 1: GOSUB 2830: GOSUB 2590: GOSUB 2860
  297. 3305  GOSUB 2130
  298. 3310 F$ = "C":V = 4:Q%(5) = 15:Q%(6) = 7:Q%(7) = 8:Q%(15) = 16:D(5) = 1:D(6) = 1:D(7) = 1:D(15) = 1: GOSUB 2830: GOSUB 2590: GOSUB 2860
  299. 3320  PRINT BL$;
  300. 3330  RETURN 
  301. 3340  VTAB 19: HTAB 1
  302. 3350  PRINT "The MAGIC SUM is 124 and it is easy"
  303. 3360  PRINT "to make this the birth year, say, 1980."
  304. 3370  PRINT "To change the sum, find an unused PATH"
  305. 3380  PRINT "which would not bother the already"
  306. 3390  PRINT "planted values 10, 15, & 92. We cannot"
  307. 3400  RETURN 
  308. 3410  VTAB 19: HTAB 1
  309. 3420  PRINT "use PATHS C, E, F, or G. Leaving A, B,"
  310. 3430  PRINT "D, or H. Take PATH B and add 1856."
  311. 3440  PRINT "This eliminates duplicate 92's in cells"
  312. 3450  PRINT "6 and 8. See Them? Now the MAGIC SUM is"
  313. 3460  PRINT "1980 and the 10/15/92 shows up clearly!"
  314. 3470  GOSUB 2130
  315. 3480 F$ = "B":V = 1856:Q%(1) = 1872:Q%(8) = 1948:Q%(13) = 1864:Q%(14) = 1871:D(1) = 1:D(8) = 1:D(13) = 1:D(14) = 1: GOSUB 2830: GOSUB 2590: GOSUB 2860
  316. 3490  PRINT BL$;
  317. 3500  RETURN 
  318. 3510  VTAB 19: HTAB 1
  319. 3520  PRINT "Now we have the 1st two cells done"
  320. 3530  PRINT "but the 3rd one is now a 7 (it was 3)"
  321. 3540  PRINT "Thus we must add 85 (92-7=85) to PATH F"
  322. 3550  PRINT "since using PATH C would change the 2nd"
  323. 3560  PRINT "cell. You see the 10/15/92 in place!!"
  324. 3570  GOSUB 2130
  325. 3580 F$ = "F":V = 85:Q%(6) = 92:Q%(2) = 90:Q%(8) = 92:Q%(16) = 87:D(6) = 1:D(2) = 1:D(8) = 1:D(16) = 1: GOSUB 2830: GOSUB 2590: GOSUB 2860
  326. 3590  PRINT BL$;
  327. 3600  RETURN 
  328. 3610  VTAB 17: HTAB 26: PRINT  SPC( 11): VTAB 19: HTAB 1
  329. 3620  PRINT "Comments: The more planted values you"
  330. 3630  PRINT "wish, the more ingenuity is needed."
  331. 3640  PRINT "At times, adding more than once to one"
  332. 3650  PRINT "PATH is necessary. Adding values to all"
  333. 3660  PRINT "cells helps. Adding negatives helps!"
  334. 3670  RETURN 
  335. 3680  VTAB 19: HTAB 1
  336. 3690  PRINT "If you don't like duplicates cells, add"
  337. 3700  PRINT "to unused PATHS to eliminate them."
  338. 3710  PRINT "Shade or color planted cells on your"
  339. 3720  PRINT "finished product. Enjoy making your own"
  340. 3730  PRINT "MAGIC DIAMONDS! Be creative. Bye!!"
  341. 3740  RETURN 
  342. 3750  VTAB 12: HTAB 2
  343. 3760  PRINT "Are you sure you want to quit (Y/N)? ";: GET A$
  344. 3770  IF A$ < >"Y"  AND A$ < >"y"  AND A$ < >"N"  AND A$ < >"n"  THEN  PRINT BL$;: GOTO 3750
  345. 3780  IF A$ = "N"  OR A$ = "n"  THEN  GOSUB 1810: GOTO 1310
  346. 3790  PRINT  CHR$(4)"BYE"
  347. 3870  REM  ** PATH  ADD **
  348. 3880  VTAB 19: HTAB 1
  349. 3890  PRINT "Examine the PATH  ADD column. It holds"
  350. 3900  PRINT "14 items before it starts to overwrite"
  351. 3910  PRINT "at the top. A PATH of + indicates that"
  352. 3920  PRINT "the value was added to all cells. This"
  353. 3930  PRINT "record should help you greatly."
  354. 3940  RETURN